package com.elephant.core.event;

import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

/**
 * @Author: hai
 * @Date: 2019/1/3 10:43
 * 事件的发布者发布事件，事件的监听这对对应的事件进行监听，当监听到对应的事件时，就会触发调用相关的方法。
 * 因此，在事件处理中，事件是核心，是事件发布者和事件监听者的桥梁。
 *
 *     对应到上面的案例，我们可以在用户注册成功后发布事件，事件监听者监听到用户注册成功的事件后，触发发送邮件和发送短信的业务。
 * 由于要触发发送邮件和短信，因此要从事件发布者那里获取对应的邮件地址和手机号码，而这些信息是通过事件这个桥梁进行连接的，
 * 所以，事件中必须包含邮件地址和手机号码这两个属性。
 */
@Component
public class EventListener implements ApplicationListener<UserRegisterEvent> {
    @Override
    public void onApplicationEvent(UserRegisterEvent event) {

        //发送邮件
        System.out.println("send email success");

        //发短信
        System.out.println("send message success");
    }
}
